package com.itheima.handlerTask;

import com.itheima.constant.RedisConstant;
import com.itheima.utils.QiniuUtils;
import com.qiniu.common.QiniuException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import redis.clients.jedis.JedisPool;

import java.util.Set;

/**
 * @author 吴
 * @version V1.0
 * @Description  处理删除图片的定时任务
 * @Package com.wu.handlerTask
 * @date 2021/11/24 12:50
 */
@Component
public class ClearImgTask {

    @Autowired
    private JedisPool jedisPool;

    /**
     *  秒 分 时 日 月 星期
     *  每天2点清理垃圾图片
     */
    @Scheduled(cron = "0 0 2 * * ? ")
    public void clearImg() {

        //获取redis集合中保存的所有图片数据
        Set<String> smembers = jedisPool.getResource().smembers(RedisConstant.SETMEAL_PIC_RESOURCES);
        if(smembers==null || smembers.size()==0){
            return;
        }

        //从七牛云删除图片数据
        smembers.stream().forEach(img -> {
            //从七牛云删除图片
            try {
                QiniuUtils.deleteFileFromQiniu(img);
            } catch (QiniuException e) {
                e.printStackTrace();
            }
            // 从redis中删除图片
            jedisPool.getResource().srem(RedisConstant.SETMEAL_PIC_RESOURCES, img);
        });
    }

//     每隔10秒打印一次
//    @Scheduled(cron = "0/10 * * * * ? ")
//    public void test(){
//        System.out.println("测试中...");
//    }



}
